#include "udp_client.h"
#include <iostream>

namespace umtl
{
	//////////////////////////////////////////////////////////////////////////
	//

	udp_client::udp_client( std::string const & host, std::string const & port
		, udp_connection::read_handler_t read_handler, udp_connection::close_handler_t close_handler )
	{
		try
		{
			connection_ = udp_connection::create( read_handler, close_handler );
			connection_->connect( host, port );

			start_receive();
		}
		catch (std::exception & e)
		{
			std::cerr << e.what() << std::endl;
		}
	}

	//////////////////////////////////////////////////////////////////////////
	//

	void udp_client::start_receive()
	{
		connection_->read();
		connection_->run();
	}

	//////////////////////////////////////////////////////////////////////////
	//

	void udp_client::send( char const * data, size_t len )
	{
		if( data && len )
			connection_->send( data, len );
	}

	//////////////////////////////////////////////////////////////////////////
}